package cn.school.publicPhone.service;

import cn.school.common.api.CommonPage;
import cn.school.common.api.CommonResult;
import cn.school.publicPhone.vo.StudentCallQuota;
import cn.school.publicPhone.vo.StudentCallRecords;
import cn.school.publicPhone.vo.StudentCallRecordsVo;

import java.io.InputStream;
import java.util.List;

/**
 * @className: StudentCallService
 * @author: Alex
 * @date: 2023/6/25
 **/
public interface StudentCallService {
	
	/**
	 * 保存通话记录
	 * @author alex
	 * @param: studentCallRecords
	 * @date 2023/6/26 8:36
	 * @return
	 */
	int saveStudentCallRecords(StudentCallRecords studentCallRecords);
	
	/**
	 * 获取剩余通话时间
	 * @author alex
	 * @param: studentId
	 * @date 2023/6/26 8:37
	 * @return
	 */
	String getRemainingDuration(String studentId);
	
	/**
	 * 获取剩余通话时长
	 * @author alex
	 * @param: studentId
	 * @date 2023/7/6 10:04
	 * @return
	 */
	String getStudentRemainingDuration(String studentId);
	
	/**
	 * 设置通话额度
	 * @author alex
	 * @param: callQuotas
	 * @date 2023/6/26 8:37
	 * @return
	 */
	Boolean setCallQuota(List<StudentCallQuota> callQuotas);
	
	/**
	 * 获取通话记录列表
	 * @author alex
	 * @param: vo
	 * @date 2023/6/26 8:37
	 * @return
	 */
	CommonPage<StudentCallRecords> getRecordsList(StudentCallRecordsVo vo);
	
	/**
	 * 获取通话额度配置列表
	 * @author alex
	 * @param: vo
	 * @date 2023/6/26 8:58
	 * @return
	 */
	CommonPage<StudentCallQuota> getCallQuotaList(StudentCallRecordsVo vo);
	
	/**
	 * 删除通话额度
	 * @author alex
	 * @param: list
	 * @date 2023/6/26 17:22
	 * @return
	 */
	Boolean deleteQuotaByIds(List<Long> list);
	
	/**
	 * 导入通话额度
	 * @author alex
	 * @param: inputStream
	 * @date 2023/6/29 14:10
	 * @return
	 */
	CommonResult<String> importContactsList(InputStream inputStream);
}
